/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Servlets;

import Beans.Usuario;
import Daos.UsuarioDao;
import Validador.ValidaUsuario;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author wbartko
 */
public class ServletAlterarSenha extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String senha = request.getParameter("senhaAtual");
        String novaSenha = request.getParameter("novaSenha");
        String confirmarNovaSenha = request.getParameter("confirmarNovaSenha");

        System.out.println("chgou no servletAlterarSenha");

        //pega usuario da sessao
        HttpSession sessão = request.getSession(true);
        Usuario usuario = (Usuario) sessão.getAttribute("usuario");

        //mata sessoes invalidas
        sessão.removeAttribute("senhaErrada");
        sessão.removeAttribute("senhaNula");
        sessão.removeAttribute("senhasNaoBatem");

        //classe que valida todos os usuarios
        ValidaUsuario validaUsuario = new ValidaUsuario(usuario);


        //contador para indicar que houve algum erro em preencher os dados
        int contadorErro = 0;

        //se foi digitado a senha errada
        if (!usuario.getSenha().equals(senha)) {
            contadorErro++;
            sessão.setAttribute("senhaErrada", "A senha digitada está incorreta");
        }
        //senha nula
        if (novaSenha == null || (novaSenha == null ? "" == null : novaSenha.equals(""))) {
            contadorErro++;
            sessão.setAttribute("senhaNula", "A nova senha é inválida");
        } else {

            //confirmar senha e nova senha nao diferentes
            if (!novaSenha.equals(confirmarNovaSenha)) {
                contadorErro++;
                sessão.setAttribute("senhasNaoBatem", "Senhas não conferem");
            } else {
                usuario.setSenha(novaSenha);
            }
        }


        if (contadorErro > 0) {
            sessão.setAttribute("usuario", usuario);
            response.sendRedirect("formulario_alterarSenha.jsp");
        } else {
            sessão.removeAttribute("senhaErrada");
            sessão.removeAttribute("senhaNula");
            sessão.removeAttribute("senhasNaoBatem");


            //salva dados no banco
            new UsuarioDao(usuario).persist();







            //sessao com os nomes de usuario para pagina welcome
            HttpSession sessao = request.getSession(true);
            sessao.setAttribute("usuario", usuario);

            response.sendRedirect("sucessoAlterarDados.jsp");




        }



    }
}
